package com.cuit.dao;
import java.sql.*;


import com.cuit.pojo.Doctor;
import com.cuit.util.JdbcUtils;
public class DoctorDAO {
	public DoctorDAO(){}
	@SuppressWarnings("null")
	public boolean login(Doctor d) { //登录
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {//JDBC查询
            conn=JdbcUtils.getConnection();
            String sql = "select * from doctors where d_id=?"; //数据库编译时
            stmt = conn.prepareStatement(sql);	//将sql发送给数据库进行编译
            //设置sql参数
            stmt.setInt(1, d.getId());//传入数据值，不会作为关键字 --防止注入
            rs = stmt.executeQuery();			//执行sql                                  
            if(rs.next()==true) {//next返回值
            	System.out.println("用户名存在");
            	String pass=rs.getString("d_password");
            	System.out.println("正确密码："+pass);
            	System.out.println("输入的密码:"+d.getPassword());
            	if(pass.equals(d.getPassword())) {
            		System.out.println("用户名存在且密码正确");
            		//从数据库获取数据给当前医生
                    d.setName(rs.getString("d_name"));
                    d.setAge(rs.getInt("d_age"));
                    d.setSex(rs.getString("d_sex"));
                    d.setGrade(rs.getString("d_grade"));
                    d.setDepartment(rs.getString("d_department"));
                    d.setProfile(rs.getString("d_profile"));
            		return true;
            	}else {
					d.setIssue("密码错误！");
            		System.out.println("密码错误！");
            		return false;
            	}
            }
            else {
				d.setIssue("用户名错误！");
            	System.out.println("用户名错误！");
            	return false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    public void up(Doctor d){
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {//JDBC查询
            conn = JdbcUtils.getConnection();
            if(d.getName()!=null){
                String sql = "update doctors set d_name=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setString(1,d.getName());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
            if(d.getAge()!=0){
                String sql = "update doctors set d_age=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setInt(1,d.getAge());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
            if(d.getSex()!=null){
                String sql = "update doctors set d_sex=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setString(1,d.getSex());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
            if(d.getGrade()!=null){
                String sql = "update doctors set d_grade=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setString(1,d.getGrade());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
            if(d.getDepartment()!=null){
                String sql = "update doctors set d_department=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setString(1,d.getDepartment());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
            if(d.getProfile()!=null){
                String sql = "update doctors set d_profile=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setString(1,d.getProfile());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
            if(d.getPassword()!=null){
                String sql = "update doctors set d_password=? where d_id=?"; //数据库编译时
                stmt = conn.prepareStatement(sql);    //将sql发送给数据库进行编译
                //设置sql参数
                stmt.setString(1,d.getPassword());
                stmt.setInt(2, d.getId());//传入数据值，不会作为关键字 --防止注入
                stmt.executeUpdate();            //执行sql
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

}
